f84bc41b3786b25253ccaabc09074efebc1eb60b,codeInsight/impl/com/intellij/codeInsight/completion/CompletionPreferencePolicy.java,CompletionPreferencePolicy,compare,#LookupItem#LookupItem#,67
Before Change
public int compare(final LookupItem item1, final LookupItem item2) {
if (item1 == item2) return 0;
if(item1.getLookupString().toLowerCase().startsWith(myPrefix.toLowerCase()) && !item2.getLookupString().toLowerCase().startsWith(myPrefix.toLowerCase()))
return -1;
if(!item1.getLookupString().toLowerCase().startsWith(myPrefix.toLowerCase()) && item2.getLookupString().toLowerCase().startsWith(myPrefix.toLowerCase()))
return 1;
After Change
public int compare(final LookupItem item1, final LookupItem item2) {
if (item1 == item2) return 0;
String item1String = item1.getLookupString();
String item2String = item2.getLookupString();
item1String = item1String.toLowerCase();
item2String = item2String.toLowerCase();
if(item1String.startsWith(myPrefixLowered) && !item2String.startsWith(myPrefixLowered))
return -1;
if(!item1String.startsWith(myPrefixLowered) && item2String.startsWith(myPrefixLowered))
return 1;
// Check equality in case
item1String = item1.getLookupString();
item2String = item2.getLookupString();
if(item1String.startsWith(myPrefix) && !item2String.startsWith(myPrefix))
return -1;
if(!item1String.startsWith(myPrefix) && item2String.startsWith(myPrefix))
return 1;
Object o1 = item1.getObject();
Object o2 = item2.getObject();